#ifndef INFOWINDOW_H
#define INFOWINDOW_H

#include <wx/event.h>
#include <wx/timer.h>
#include <wx/string.h>
#include <wx/popupwin.h>
typedef wxPopupWindow wxInfoWindowBase;

#undef new
#include <list>
#include <algorithm>

class InfoWindow : public wxInfoWindowBase {
    InfoWindow( const wxString& title, const wxString& message, unsigned int delay, unsigned int hysteresis );
    virtual ~InfoWindow();
    void OnTimer( wxTimerEvent& e );
    void OnMove( wxMouseEvent& e );
    void OnClick( wxMouseEvent& e );
  public:
    static void Tip( const wxString& message, const wxString& title, unsigned int delay = 5000, unsigned int hysteresis = 1 );
  private:
    wxTimer *m_timer;
    int left;
    int top;
    int hMin;
    int pos;
    unsigned int status;
    unsigned int m_delay;
    unsigned int ks;
    std::list<wxString>::iterator my_message_iterator;
  private:
    DECLARE_EVENT_TABLE()
};

#endif
